package com.func.domain.strategy.service.rule.tree.factory.engine;

import com.func.domain.strategy.service.rule.tree.factory.DefaultTreeFactory;

import java.util.Date;

/**
 * @version 1.0
 * @className IDecisionTreeEngine
 * @description 决策树引擎接口
 * @author: func
 * @date 2025/2/28 21:15
 */


public interface IDecisionTreeEngine {
    /**
     * 从根节点开始运行决策树, 返回最后过滤出来的奖品
     *
     * @param userId
     * @param strategyId
     * @param awardId
     * @param endDateTime
     * @return 最后过滤出来的奖品
     */
    DefaultTreeFactory.StrategyAwardVO process(String userId, Long strategyId, Integer awardId, Date endDateTime);
}
